
// do "/projects/hsieh_project/code_0_general/f_rounding.do"


capture program drop rounding_4dig
program rounding_4dig
	args l_var
	
	di "`l_var'"
	foreach i_var in `l_var' {
		recast double `i_var'
		replace `i_var' = round(`i_var', 10^(floor(log10(`i_var'))-3)) if `i_var' > 0
		replace `i_var' = round(`i_var', 10^(floor(log10(-`i_var'))-3)) if `i_var' < 0
	}
end

capture program drop rounding_N
program rounding_N 
	args l_var
	
	di "`l_var'"
	foreach i_var in `l_var' {
		di "`i_var'"
		gen r_`i_var' = abs(`i_var')
		gen o_`i_var' = `i_var'
		replace `i_var'= round(r_`i_var', 10^(floor(log10(r_`i_var'))-3)) if inrange(r_`i_var', 1000000, .)
		replace `i_var'= round(r_`i_var', 1000) if inrange(r_`i_var', 100000, 999999) 
		replace `i_var'= round(r_`i_var', 500) if inrange(r_`i_var', 10000, 99999)
		replace `i_var'= round(r_`i_var', 100) if inrange(r_`i_var', 1000, 9999) 
		replace `i_var'= round(r_`i_var', 50) if inrange(r_`i_var', 100, 999)
		replace `i_var'= round(r_`i_var', 10) if inrange(r_`i_var', 15, 99)
		replace `i_var' = 15 if r_`i_var' < 15
		replace `i_var' = - `i_var' if o_`i_var' < 0
		drop r_`i_var' o_`i_var'
	}
end
